package tools.genomeMatrix;

import java.util.ArrayList;
import java.util.Collections;

public class geneQue {

	private ArrayList<gene> genes;
	private boolean sorted;
	private int next;
	
	public geneQue(){
		genes=new ArrayList<gene>();
		sorted=true;
		next=Integer.MAX_VALUE;
	}
	
	public gene getNext() throws Exception{
		if(!sorted){
			Collections.sort(genes);
			sorted=true;
		}
		if(genes.size()==0){
			throw new Exception("No genes left");
		}
		if(genes.size()>1){
			next=genes.get(1).getStart();
		}else{
			next=Integer.MAX_VALUE;
		}
		return genes.remove(0);
	}
	
	public int getNextStart(){
		if(!sorted){
			Collections.sort(genes);
			sorted=true;
			if(genes.size()>0){
				next=genes.get(0).getStart();
			}else{
				next=Integer.MAX_VALUE;
			}
		}
		return next;
	}
	
	public void add(gene g){
		genes.add(g);
		sorted=false;
	}
	
	public int size(){
		return genes.size();
	}
}
